Natural Language-Based Software Analyses and Tools for Software Maintenance
نویسندگان
چکیده
Significant portions of software life cycle resources are devoted to program maintenance, which motivates the development of automated techniques and tools to support the tedious, error-prone tasks. Natural language clues from programmers’ naming in literals, identifiers, and comments can be leveraged to improve the effectiveness of many software tools. For example, they can be used to increase the accuracy of software search tools, improve the ability of program navigation tools to recommend related methods, and raise the accuracy of other program analyses by providing access to natural language information. This chapter focuses on how to capture, model, and apply the programmers’ conceptual knowledge expressed in both linguistic information as well as programming language structure and semantics. We call this kind of analysis Natural Language Program Analysis (NLPA) since it combines natural language processing techniques with program analysis to extract information for analysis of the source program.
منابع مشابه
Supporting Developers in Porting Software via Combined Textual and Structural Analysis of Software Artifacts
In the engineering and scientific domains software commonly has a long lifespan, lasting decades instead of years. Due to this lifespan, software often outlives the current generation of hardware, and in turn needs to be modified to execute on newer classes of hardware architectures [1]. Supporting developers in this difficult software maintenance activity is very important in order to improve ...
متن کاملNatural Language in Software Engineering
The large time and effort devoted to software maintenance can be reduced by providing software engineers with software tools that automate tedious, error-prone tasks. However, despite the prevalence of tools such as IDEs, which automatically provide program information and automated support to the developer, there is considerable room for improvement in the existing software tools. The authors’...
متن کاملMulti-Dimensional User Models for Multi-media I/O in the Maintenance Consultant
The MC (Maintenance Consultant) system helps users to maintain large software systems by providing access to a set of graphical models representing different aspects of the target software system. Users can combine natural language requests with pointing and MC responds either graphically, textually (tables and natural language), or in combination. Users can also ask about how to use various ma...
متن کاملTR120625-42: Vocabulary Normalization’s Impact on IR-Based Concept Location
Tool support is crucial to modern software development, evolution, and maintenance. Early tools reused the static analysis performed by the compiler. These were followed by dynamic analysis tools and more recently tools that exploit natural language. This later class has the advantage that it can incorporate not only the code, but artifacts from all phases of software construction and its subse...
متن کاملParsing Formal Languages using Natural Language Parsing Techniques
Program analysis tools used in software maintenance must be robust and ought to be accurate. Many data-driven parsing approaches developed for natural languages are robust and have quite high accuracy when applied to parsing of software. We show this for the programming languages Java, C/C++, and Python. Further studies indicate that post-processing can almost completely remove the remaining er...
متن کامل